大一萌新C语言程序设计复习要点(大佬请绕道) 您所在的位置:网站首页 c语言枚举类型enum用法 给第一个定值 大一萌新C语言程序设计复习要点(大佬请绕道)

大一萌新C语言程序设计复习要点(大佬请绕道)

2024-07-06 17:53| 来源: 网络整理| 查看: 265

大一上——C语言程序设计

参考内容主要来自《C语言程序设计》第3版

C语言程序设计概述

1.一个C语言程序的执行是 从程序的main函数开始,到main函数结束的。

2.用C语言编写的代码程序 是一个源程序,它需要经过编译,连接转换成二进制的机器语言才可以被执行。

3.C语言源程序经编译,连接转换成的二进制机器语言 可以直接运行。

4.C语言中的函数可以单独进行编译。

5.C语言程序的运行经过为:编 辑C语言程序源代码;编译形成目标代码;连接目标代码与C语言函数库。将源程序所用的库 代码与目标代码合并,并形成最终可执行的二进制机器程序;运行在特定的机器环境下的C语言程序。

> 简化来讲就是:编辑源程序;编译源程序;连接目标程序;运行可执行程序。

6.描述算法有很多种方法:自然语言、流程图和N-S图、程序设计语言。下面稍微详细一点介绍一下:|描述方法|详情 ||--|--||自然语句 |是算法语言的基本表现形式,比较容易理解,但是书写比较繁琐,具有不确切性 ||伪代码、程序设计语言 |可以把算法准确的表示出来 ||流程图、N-S图 |用作表示算法较为直观、形象 |

7.算法具有五个特性:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出(这两点可以概括为输入性和输出性)下面分别介绍:|特性|特点 ||--|--||有穷性 |是指一个算法应该包含有限的操作步骤,而不是无限的 ||确定性 |是指算法的每一个步骤都应当是确定的,不应该是含糊的、模棱两可的 ||有效性 |是指算法中的每一个步骤都应当能有效地执行,并得到确定的结果 ||输入性 |以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件 ||输出性 |以反映对输入数据加工后的结果。没有输出的算法是毫无意义的 |

8.C语言源程序的扩展名是“c”或者“cpp”(cpp是在VC6.0的编译环境中默认的扩展名)这里同时再附加上几个可能会遇见的扩展名;|扩展名 |属性 ||--|--||txt |文本文件扩展名 ||obj |编译后产生的目标程序的扩展名 ||exe |连接后产生的可执行程序的扩展名 |输入链接地址(这里的扩展名是真的全,想了解就戳进去瞅瞅)9.C语言程序的运行结果不对时,大多属于逻辑错误。此时通常采用调试手段,比如:设置断点,或采取单步执行程序,在断点或每条语句处观察变量的值,以确定语句或算法是否正确,以便于修改。

简而言之。调试一般方法:设置断点后观察变量、单步调试后观察变量

10.C语言源程序通常由 编译程序 将其转换为目标程序。

11.根据要执行的动作及这些动作应该执行的顺序求解问题的过程称为 算法。

12.在结构化程序中,有3种结构,分别是:顺序结构、选择结构、循环结构。

13.C语言的关键字通常都是小写字母。

14.C语言称变量、函数、标号、各种用户定义的对象名字为 标识符/标识符的长度从一到若干字符不等,其中第一个字符必须是字母或者下划线,随后的字符只能是字母、数字或者下划线。标识符最长允许32个字符。

C语言的基本数据类型与表达

1.整形常量的表示形式有3种,即十进制、八进制、十六进制,分别有以下的简单特点。|进制数|特点 ||--|--||十六进制 |对于整形常量,有字母必定是十六进制,且开头一般是“0x/0X”,同时使用%h进行输出表示 ||八进制 |同样对于整形常量,开头一般是“0”,同时用%o进行输出表示 ||十进制 |额外说一下%i和%d,如下:|

C语言中 %d 与 %i 的区别 和注意事项 在 printf 中使用时,没有区别 在 scanf 中使用时,有点区别,如下:——在scanf格式中,%d 只与十进制形式的整数相匹配。——而%i 则可以匹配八进制、十进制、十六进制表示的整数。·——例如: 如果输入的数字有前缀 0(018、025),%i将会把它当作八进制数来处理,如果有前缀0x (0x54),它将以十六进制来处理。

2.字符常量是用单引号括起来的一个字符,用反斜杠“\”引导的转义字符也是一个字符。对于字符反斜杠“"、单引号“ ' "、双引号" " ",必须再加""引导,形式为'\'、' ' '、' '' '、用八进制或者十六进制ASCII码表示一个字符。形式分别为"\0"引导3位八进制码(如'\107'),和“\x"引导2位十六进制码(如'\xzb')

3.运算符的优先级从高到低的顺序为逻辑非(!)、算术运算符、关系运算符、逻辑运算符“&&”和“||”、条件运算符、赋值运算符、逗号运算符; 结合方向从右至左的运算符有逻辑非(!)、自增自减运算符、条件运算符和赋值运算符。

例:c+++b和(c++)+b 是等价的。 注:在printf函数中的参数。一般是从右往左计算。

输入链接地址(这个是我搜索到比较好比较全面的优先级总结)

4.C语言中不同数据类型所占用的字节是不同的,以下有部分归纳:

如上图,以下有一些备注:

16位编译器:char *(指针变量):2个字节(寻址空间为2^16,所以为两个字节) 32位编译器:char *(指针变量):4个字节 64位编译器:char *(指针变量):8个字节

5.注意“ % ”这个字符,他是表示取整,但是他的对象是整型变量/常量,所以在做题时要谨慎小心被坑(如下)

int main() { double x = 1.42,y; y = x % (-3); printf("%lf",y); } 顺序结构程序设计

1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列(即规定了输出字段的宽度)。如果字符串的长度大于5,则输出时,按原字符长从左向右全部输出。

2.scanf函数的转换说明符中可用 域宽 表示要从输入流中读取指定个数的字符或数字。

3.“ - ” (减号)标志使输出在域宽内左对齐。

4.“ + ”(加号)标志显示带有加号或减号的值。

#include int main() { int x; scanf("%d",&x); printf("%+d",x); }

5.printf函数中用到格式符%10s,其中数字10表示输出的字符串占用10列,如果字符串输入长度大于10,那么输出时仍然按照远字符长从左向右全部输出,如果不大于10,那么默认左对齐。

选择结构程序设计

1.if/else 结构在条件为“真”时执行一个动作,条件为“假”时执行另一个动作。(放这个在这主要是提醒别只写if然后溜了)

2.switch结构用来测试某个特定的变量或表达式是否等于没一个假设的整常数值。

3.对于“||”运算符,一个易错点一定要知道:如果有a=b=c=1,然后if(a++||++b)c++,问b=?,千万不要无脑填完2就走,如果第一个条件就是“真”,那么编译器不会执行++b这一步操作,当且仅当第一个条件为“假”,编译器才会执行第二个条件。所以此处的b还是原来的1,答案b=1。

4.如果程序中有多个if/else结构,那么如何判断哪个if和哪个else组合? 答:else跟它之前还未配对的最近的if组合。

5.sqrt()和fabs(),pow()这几个函数要留意一下,在include中。

6.要注意由于运算符带来的坑

int main() { int a=b=c=1; if(a++||++b) //特别留意这个“||”,如果计算机识别到第一个条件为真,那么它是不会进行第二个条件的判断的 c++; printf("%d",b); //此时由于a++为真(大于1),所以++b不会执行,所以b还是原来的值:1 }

7.如果有多个if-else结构,就要注意,else是跟其之前未配对的,最近的,if进行配对,如下一个例题很容易出错。

int main() { int a,b; scanf("%d%d",&a,&b); if(a>b) if(a>0)printf("A"); else if(b>-5)printf("B"); else printf("C"); //这个else就是跟它上面那个if(b>-5)进行配对的 printf("*\n"); } 循环结构程序设计

1.只能在循环体内和switch语句体内使用break语句。

2.如果在条件判断时出现这种情况:while(a



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有